// Rust Analyzer OUT_DIR 环境变量测试脚本
// 运行此脚本来验证 Rust Analyzer 配置是否正确

import { execSync } from 'child_process';
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

console.log('🔧 测试 Rust Analyzer 配置...\n');

// 检查构建脚本
try {
  const buildRsPath = path.join(__dirname, '..', 'src-tauri', 'build.rs');
  if (fs.existsSync(buildRsPath)) {
    console.log('✅ build.rs 文件存在');
    const content = fs.readFileSync(buildRsPath, 'utf8');
    if (content.includes('tauri_build::build()')) {
      console.log('✅ build.rs 内容正确');
    } else {
      console.log('❌ build.rs 内容不正确');
    }
  } else {
    console.log('❌ build.rs 文件不存在');
  }
} catch (error) {
  console.log('❌ 检查 build.rs 时出错:', error.message);
}

// 检查 VSCode 设置
try {
  const settingsPath = path.join(__dirname, '..', '.vscode', 'settings.json');
  if (fs.existsSync(settingsPath)) {
    console.log('✅ .vscode/settings.json 文件存在');
    const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8'));
    
    if (settings['rust-analyzer.cargo.extraEnv'] && 
        settings['rust-analyzer.cargo.extraEnv']['OUT_DIR']) {
      console.log('✅ OUT_DIR 环境变量已配置');
    } else {
      console.log('❌ OUT_DIR 环境变量未配置');
    }
  } else {
    console.log('❌ .vscode/settings.json 文件不存在');
  }
} catch (error) {
  console.log('❌ 检查 VSCode 设置时出错:', error.message);
}

// 测试构建
try {
  console.log('\n🏗️  测试构建过程...');
  execSync('cd src-tauri && cargo check --quiet', { 
    stdio: 'inherit',
    cwd: path.join(__dirname, '..') 
  });
  console.log('✅ 构建测试成功');
} catch (error) {
  console.log('❌ 构建测试失败:', error.message);
}

console.log('\n📋 测试完成！如果所有检查都通过，Rust Analyzer 应该能正常工作。');
console.log('💡 提示：重启 VSCode 以使设置生效');